package com.crawler.system.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 动态页面参数DTO
 * 用于配置动态爬虫引擎的参数
 */
@Data
public class DynamicPageParamsDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 等待时间(毫秒)
     * 页面加载后等待的时间，确保动态内容加载完成
     */
    private Integer waitTime = 3000;

    /**
     * 是否启用JavaScript
     */
    private Boolean javascriptEnabled = true;

    /**
     * 是否加载图片
     */
    private Boolean imagesEnabled = false;

    /**
     * 窗口宽度
     */
    private Integer windowWidth = 1366;

    /**
     * 窗口高度
     */
    private Integer windowHeight = 768;

    /**
     * 用户代理
     */
    private String userAgent;

    /**
     * Cookie
     */
    private Map<String, String> cookies;

    /**
     * 请求头
     */
    private Map<String, String> headers;

    /**
     * 页面交互列表
     * 定义一系列页面交互操作，如点击、输入、滚动等
     */
    private List<PageInteractionDTO> interactions;

    /**
     * 自定义脚本
     * 在页面加载完成后执行的JavaScript代码
     */
    private String customScript;

    /**
     * 是否截图
     */
    private Boolean takeScreenshot = false;

    /**
     * 页面超时时间(毫秒)
     */
    private Integer timeout = 30000;

    /**
     * 等待元素
     * 等待特定元素出现后再进行后续操作
     */
    private List<ElementWaitDTO> elementWaits;
} 
